<?php

/**
 * @name DemoController
 * @author dichaofeng
 * @desc 默认控制器
 * @see http://xiaodi.org
 */
class DemoController extends Yaf_Controller_Abstract
{

    //后台首页
    public function indexAction()
    {


    }

    public function uploadAction()
    {
        $up = new Upload(array('json' => false, 'path' => '/upload/', 'maxsize' => '2000000', 'allowtype' => array("gif", "png", "jpg", "jpeg", "php"), 'israndname' => true));
        //设置属性(返回类型是否json数据，上传的位置(支持创建文件夹)， 大小maxsize=2000000表示2M文件大小， 允许文件类型， 名是是否要随机生成)
        $result = $up->upload("pic");
        //使用对象中的upload方法， 就可以上传文件， 方法需要传一个上传表单控件的名子 pic, 如果成功返回:
        //array(3) { ["code"]=> int(0) ["codeMess"]=> string(12) "上传成功" ["url"]=> string(30) "/upload/20160819051206_733.jpg" }
        //失败返回:
        //array(2) { ["code"]=> int(-1) ["codeMess"]=> string(77) "上传文件【putty_V0.63.0.0.43510830.exe】时出错 : 未允许类型" }
        //具体参数含义请看改类的config 若有疑问请找邸朝峰
        //code错误字典：0:"上传成功";4:"没有文件被上传"; 3:"文件只有部分被上传";2:"上传文件的大小超过了HTML表单中MAX_FILE_SIZE选项指定的值";1:"上传的文件超过了php.ini中upload_max_filesize选项限制的值";-1:"未允许类型";-2:"文件过大,上传的文件不能超过{$this->maxsize}个字节";-3:"上传失败";-4: "建立存放上传文件目录失败，请重新指定上传目录";-5:"必须指定上传文件的路径";其他为未知错误


        print_r($result);
        if ($result['code'] == 0) {  //成功
            echo $result['codeMess'];
        } else {                    //失败
            echo $result['codeMess'];
        }
        exit();
    }

    public function viewAction()//显示模板
    {
    }
    /*
               * 验证码demo by dichaofeng
                * 可设置字体大小 ,中文,  图片高度   ,图片宽度,  验证码长度， 定义噪点 ，定义曲线...
                * args config参数请看具体Verify.php类
    */
    public function getCodeAction()
    {
        $type = isset($_GET['type']) ? $_GET['type'] : 0;//type参数做多种demo展示
        if ($type == 0) {
            $verify = new Verify(array('length' => 4, 'useCurve' => false, 'useNoise' => false));//数字验证码
            $verify->entry(1000);  //数字1000为该code对应的唯一 sessinid 与check验证对接
        } elseif ($type == 1) {
            $verify = new Verify(array("fontSize" => 20, "useZh" => true, 'imageH' => 50, 'imageW' => 150, 'length' => 4, 'useCurve' => false, 'useNoise' => true));//字体大小 ,中文,  图片高度   ,图片宽度,  验证码长度
            $verify->entry(1002);  //数字1002为该code对应的唯一 sessinid 与check验证对接
        }

    }

    /*
     * 分页demo by dichaofeng
     * 动态分页或ajax无刷新分页 动态拼接分页参数、分页url 且保留分页前filter条件 默认分页样式
     * args 具体参数请看Pages.php类
     */
    public function getCashAction()
    {
        $this->DemoModel = new DemoModel();             //实例化模型
        $user_id = 1;
        $page = isset($_GET['page']) ? $_GET['page'] : 1;//获取当前页码 页码若有多处分页 请修改此page,否则没有选中的状态
        $asset_info = $this->DemoModel->selectInfo($user_id, $page, 10); //获取模型list 根据当前偏移量
        $count = $this->DemoModel->selectCount($user_id);       //获取模型 总页数
        $pages = new Pages($page, $count, 10);                  //创建分页类
        $this->getView()->assign("pages", $pages->getView());   //注册pages到模板
        $this->getView()->assign("asset_info", $asset_info);     //注册list到模板
    }

}